// 可能是我的node版本问题，不用严格模式使用ES6语法会报错
const models = require('./db');
const express = require('express');
const router = express.Router();

/************** 创建(create) 读取(get) 更新(update) 删除(delete) **************/

// 编写接口

router.route('/restaurants')
    .all(function(req, res, next) {
        // runs for all HTTP verbs first
        // think of it as route specific middleware!
        next();
    })
    .get(function(req, res, next) {
        console.log('获取商铺1111');
        models.restaurants.find(function(err, docs) {
            if (err) {
                // res.statusCode = 400;
                res.send(err);
            } else {
                console.log('获取结果：');
                console.log(docs);
                res.json(docs);
            }

        });
        // res.json(req.user);
    })
    .put(function(req, res, next) {
        // just an example of maybe updating the user
        req.user.data = req.params.data;
        // save user ... etc
        res.json(req.user);
    })
    .post(function(req, res, next) {
        console.log('添加多个商铺');
        var docs = req.body;
        console.log(docs);

        models.restaurants.create(docs, function(err, doc) {
            if (err) {
                res.send(err);
            } else {
                console.log(doc);
                res.send(doc);
            }
        });
        // next(new Error('not implemented'));
    })
    .delete(function(req, res, next) {
        next(new Error('not implemented'));
    });

// // 获取商铺列表
// router.get('/getRestaurants', (req, res) => {
//     console.log('获取商铺');
//     models.restaurants.find(function(err, docs) {
//         if (err) {
//             // res.statusCode = 400;
//             res.send(err);
//         } else {
//             console.log('获取结果：');
//             console.log(docs);
//             res.send(docs);
//         }

//     });

// });
// // 添加商铺列表
// router.post('/AddRestaurants', (req, res) => {
//     console.log('添加多个商铺');
//     var docs = req.body.data;
//     console.log(docs);

//     models.restaurants.create(docs, function(err, docs) {
//         if (err) {
//             res.send(err);
//         } else {
//             console.log(docs);
//             res.send(docs);



//         }
//     });

// });
// 添加单个商铺
router.post('/AddRestaurant', (req, res) => {
    console.log('添加商铺');
    models.restaurants.save(function(err, docs) {
        if (err) {
            // res.statusCode = 400;
            res.send(err);
        } else {
            console.log('获取结果：');
            console.log(docs);
            res.send(docs);
        }

    });

})

// 创建接口
router.post('/wzg/createAccount', (req, res) => {
    console.log('创建接口调用');
    // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    let newAccount = new models.Login({
        name: req.body.name,
        age: req.body.age,
        sex: req.body.sex
    });
    // 保存数据newAccount数据进mongoDB
    newAccount.save((err, data) => {
        console.log(4);
        console.log(data);
        if (err) {
            res.send(err);
        } else {
            res.send(data);
        }
    });
});
// 获取
router.get('/wzg/getAccount', (req, res) => {
    console.log('获取');
    // 通过模型去查找数据库
    models.Login.find(function(err, docs) {
        if (err) {
            // res.statusCode = 400;
            res.send(err);
        }
        console.log('获取结果：');
        console.log(docs);
        res.send(docs);
    });
});

// 删除
router.delete('/wzg/delete/:id', (req, res) => {
    models.Login.findOneAndRemove({
            _id: req.params.id
        })
        .then(person => res.send(`${person.name}删除成功`))
        .catch(err => {
            res.json(err);
        })
});
//删除 二
/*router.delete('/wzg/delete/:id',(req,res) => {
    var id = req.params.id;
    models.Login.findByIdAndUpdata(id)
    .then(person => res.send(`${person.name}删除成功`))
    .catch(err => {
        res.json(err);
    })
});*/
//删除 三
/*router.delete('/wzg/delete/:name',(req,res) => {
    var name = req.params.name;
    models.Login.remove({'name':name})
    .then(person => res.send(`${person.name}删除成功`))
    .catch(err => {
        res.json(err);
    })
});*/

// 更新
router.put('/wzg/updata/:id', (req, res) => {
    console.log(req.body.age);
    // findByIdAndUpdate
    models.Login.findOneAndUpdate({
            _id: req.params.id
        }, {
            $set: {
                age: req.body.age
            }
        }, { new: true })
        .then(person => {
            console.log('更新');
            console.log(person);
        })
        .catch(err => res.json(err))
});

// 筛选
router.get('/wzg/find/:name', (req, res) => {
    console.log('查找');
    console.log(req.params);
    models.Login.find({
            name: req.params.name
        })
        .then((person) => {
            console.log('查找成功');
            console.log(person);
            res.send(person);
        })
        .catch(err => res.json(err))
})

// 登录注册

function isEmptyObject(obj) {
    for (var key in obj) {
        return false
    };
    return true
};


// 注册
router.post('/register', (req, res) => {
    console.log('创建用户');
    var _user = {};
    _user.user = req.body.user;
    _user.psd = req.body.psd;
    _user.imgname = req.body.imgname;

    console.log(_user.imgname)
        // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    models.Register.find({
        user: _user.user
    }, function(err, docs) {
        if (err) {
            console.log('发生错误');
            res.statusCode = 400;
            console.log(err);
        } else {
            if (docs.length == 0) {
                let newUser = new models.Register({
                    user: _user.user,
                    psd: _user.psd,
                    userImg: _user.imgname
                });
                console.log('用户不存在');
                // 保存数据newAccount数据进mongoDB
                newUser.save((er, data) => {
                    if (er) {
                        res.send(er);
                    } else {
                        console.log('注册成功');
                        console.log(data);
                        res.json(true);
                    }
                });
            } else {
                res.json(false)
                console.log('用户已存在');
            }
        }
    })
});

// 登录
router.post('/login', (req, res) => {
    var _user = req.body.user,
        _psd = req.body.psd;
    // 通过模型去查找数据库
    models.Register.find({ user: _user }, function(err, docs) {
        if (err) {
            console.log('发生错误');
            console.log(err);
        } else {
            if (docs.length == 0) {
                console.log('用户不存在');
                res.send('3');
                return
            } else {
                var psd = docs[0].psd;
                if (psd == _psd) {
                    console.log('密码正确');
                    // req.session.user['user'] = _user;
                    // req.session.user['psd'] = _psd;
                    res.send('1')
                } else {
                    console.log('密码不正确');
                    res.send('2')
                }
            }
        }
    })
});
// 上传头像
router.put('/updateImg', (req, res) => {
    console.log('上传头像');
    var _user = req.body._id;
    var imgSrc = req.body.imgName;
    // 这里的req.body能够使用就在index.js中引入了const bodyParser = require('body-parser')
    //
    // console.log(req.body.age);
    // findByIdAndUpdate
    models.Register.findOneAndUpdate({
            user: _user
        }, {
            $set: {
                userImg: imgSrc
            }
        }, { new: true })
        .then(person => {
            console.log('更新');
            console.log(person);
            res.send(person.userImg);
        })
        .catch(err => res.json(err))
});
// 获取用户信息
router.post('/wzg/getInfo', (req, res) => {
    console.log(req.body);
    models.Register.find({
            user: req.body.user
        }, { psd: 0, _id: 0 })
        .then((person) => {
            console.log('查找成功');
            console.log(person);
            res.send(person);
        })
        .catch(err => res.json(err))
})

// 更新用户昵称
router.put('/wzg/updataUserName/:id', (req, res) => {
    // console.log(req.body);//请求体
    // console.log(req.params);//带的参数

    models.Register.findOneAndUpdate({
            user: req.params.id
        }, {
            $set: {
                userName: req.body.userName
            }
        }, { new: true })
        .then((person, err) => {
            console.log('更新');
            if (person) {
                console.log(person);
                console.log('更改后的：' + person.userName)
                res.send(person.userName); //如果更新后的数据前端需要使用，则发送
            } else {
                console.log('错误');
                console.log(err);
                res.send(person.userName); //如果更新后的数据前端需要使用，则发送
            }

        })
        .catch(err => res.json(err))
});

// 更新用户生日
router.put('/wzg/updataUserBrithday/:id', (req, res) => {
    // console.log(req.body);//请求体
    // console.log(req.params);//带的参数
    models.Register.findOneAndUpdate({
            user: req.params.id
        }, {
            $set: {
                birthday: req.body.birthday
            }
        }, { new: true })
        .then(person => {
            console.log('更新');
            console.log(person.birthday);
            res.send(person.birthday); //如果更新后的数据前端需要使用，则发送
        })
        .catch(err => res.json(err))
});

module.exports = router;